import os

# 创建空字典存储课程成绩
course_grades = {}

# 构建文件路径
file_path = os.path.join(os.getcwd(), "01-exercise", "01-20", "course_student_grade_input.txt")

# 打开文件读取数据
with open(file_path, 'r', encoding='utf-8') as fin:
    # 逐行处理
    for line in fin:
        # 去除行首尾空白字符（包括换行符）
        cleaned_line = line.strip()
        
        # 跳过空行
        if not cleaned_line:
            continue
        
        # 按逗号分割字段
        fields = cleaned_line.split(",")
        
        # 确保有足够字段（课程,学号,姓名,成绩）
        if len(fields) < 4:
            continue
        
        # 解包字段
        course = fields[0]
        grade_str = fields[3]  # 成绩是第4个字段
        
        # 尝试将成绩转换为整数
        try:
            grade_int = int(grade_str)
        except ValueError:  # 转换失败（非数字）
            continue  # 跳过此行
        
        # 如果课程不存在于字典，创建空列表
        if course not in course_grades:
            course_grades[course] = []
        
        # 添加成绩到课程列表
        course_grades[course].append(grade_int)

# 遍历每门课程计算统计值
for course, grades in course_grades.items():
    # 确保课程有成绩数据
    if not grades:
        continue
    
    # 计算统计值
    highest = max(grades)       # 最高分
    lowest = min(grades)        # 最低分
    average = sum(grades) / len(grades)  # 平均分
    
    # 格式化输出结果
    print(f"课程: {course}")
    print(f"  最高分: {highest}")
    print(f"  最低分: {lowest}")
    print(f"  平均分: {average:.2f}")  # 保留两位小数
    print("-" * 30)  # 分隔线